/*
 *  $Id: Phrase.cs 1178 2010-11-09 18:14:43Z thenn.erannor $
 *  This file is a part of Ragima CCG.
 *  (C) 2008-2010 Ragima development group.
 *
 *  Licensed under the terms of the GNU GPL License version 2.
 *
 */

using System.Collections.Generic;

namespace Ragima.Languages {
    /// <summary>
    /// Набор шаблонов фраз на нескольких языках.
    /// </summary>
    public class Phrase : DefaultLocalizable<LocalizedPhrase> {
        private string _id;

        public Phrase(string id) {
            _id = id;
        }

        /// <summary>
        /// Идентификатор ресурса фразы.
        /// </summary>
        public override string ResourceId {
            get { return _id; }
        }

        /// <summary>
        /// Получает фразу по умолчанию, которой является пустая фраза.
        /// </summary>
        public override LocalizedPhrase GetDefaultResource(Language lang) {
            return LocalizedPhrase.Empty;
        }

        /// <summary>
        /// Получает текст фразы на текущем языке с указанными аргументами.
        /// </summary>
        public string GetText(params object[] args) {
            return GetCurrentResource().GetText(args);
        }

        /// <summary>
        /// Получает текст фразы (с подсказками) на текущем языке с указанными аргументами.
        /// </summary>
        public IEnumerable<HintedPhraseText> GetHintedText(params object[] args) {
            return GetCurrentResource().GetHintedText(args);
        }

        /// <summary>
        /// Выдает фразу в виде строки (получая её без аргументов).
        /// </summary>
        public override string ToString() {
            return GetText();
        }
    }
}
